功耗调整指引


1. 打开/关闭 组件


1.1. 可选的组件

在Infinity-6上可选使能的组件有 : ETH 和 USB


1.2. ETH

需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件

1.2.1. 调整U-Boot

取消MSTAR EMAC的选项

图1-1

1.2.2. 调整Linux Kernel

  1. 取消EMAC的选项

    图1-2

  2. 取消Networking support的选项

    图1-3

  3. 取消Mstar NOTIFY driver的选项

    图1-4


1.3. USB

需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件

1.3.1. 调整U-Boot

取消MSTAR USB的选项

1.3.2. 调整Linux Kernel

修改文件linux-4.9/arch/arm/boot/dts/infinity6b0.dtsi (调整status =“disabled”来关闭USB)


2. 组件时钟频率配置


2.1. CPU 时钟频率配置

2.1.1. Voltage scaling 配置

  • 提供voltage scaling的切换,预设是关闭。可通过如下命令设置开启该配置。

    echo 1 > /sys/devices/system/voltage/core/scaling_voltage
    
  • 该配置开启后,系统会自动针对目前的温度(T)来进行voltage的切换。切换策略如下:

    T > -15C : VDD= 0.9V
    
    T < -20C : VDD = 1.0V
    

2.1.2. Clock scaling 配置

  • 提供clock scaling范围设置,可通过入下命令设置clock scaling的范围。

    echo s_min > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq (default 1GHz)
    
    echo s_max > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq (default 1GHz)
    
  • 提供clock 设置

    echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
    clock 固定运行在s_max
    
    echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
    clock 可以在s_min s_max 之间切换。
    
  • 设置约束:

    1. s_min必须小于等于s_max

    2. s_min必须大于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq

    3. s_max必须小于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq


2.2. ISP 时钟频率配置

2.2.1. ISP配置示例

在isp.ko, ispmid.ko加载之后,开启视频处理任务之前,即可通过如下命令设置相关频率:

  • 读取目前的isp clock rate,可通过以下命令取得

    cat /sys/devices/virtual/mstar/isp0/isp_clk
    
  • 设置isp clock rate,可通过以下命令设置

    echo 240000000 > /sys/devices/virtual/mstar/isp0/isp_clk
    

2.2.2. ISP时钟频率档位

  • 72000000

  • 86000000

  • 123000000

  • 144000000

  • 172000000

  • 192000000

  • 216000000

  • 240000000

2.2.3. 约束

以上的设置应该在模块加载完成之后操作模块功能之前设置,才能正确的生效。


2.3. 编码时钟频率配置

2.3.1. 编码器配置示例

在mhal.ko加载之后,开启视频处理任务之前,即可通过如下命令设置相关频率:

  • 读取目前的clock rate,可通过以下命令取得

    cat /sys/venc/ven_clock
    
    cat /sys/venc/ven_clock_2nd
    
  • 设置clock rate,可通过以下命令设置

    echo 288000000 > /sys/venc/ven_clock
    
    echo 288000000 > /sys/venc/ven_clock_2nd
    

2.3.1. 编码器时钟频率档位

  • 144000000

  • 172000000

  • 216000000

  • 240000000

  • 288000000

  • 320000000

  • 345000000

  • 384000000

2.3.2. 约束

以上的设置应该在模块加载完成之后操作模块功能之前设置,并在执行模块时才能正确的生效。320MHz、345MHz与384MHz三档依赖1V的cpu core电压。


2.4. VPE scaler 时钟频率配置

2.4.1. scaler时钟频率配置

在mhal.ko加载之后,开启视频处理任务之前,即可通过如下命令设置相关频率:

  • 读取目前的clock rate,可通过以下命令取得

    cat /sys/module/mhal/parameters/drv_dip_os.gDipClk
    
  • 设置clock rate,可通过以下命令设置

    echo 320000000 > /sys/module/mhal/parameters/drv_dip_os.gDipClk
    

2.4.2. scaler时钟频率档位

  • 172000000

  • 240000000

  • 288000000

  • 320000000

2.4.3. 约束

以上的设置应该在模块加载完成之后操作模块功能之前设置,并在执行模块时才能正确的生效。


2.5. 观察cpu的温度

cat /sys/devices/virtual/mstar/msys/TEMP_R

结果仅供参考,因为误差可以达到5摄氏度。